package com.cskaoyan.javase.oop1._13block._2static;

/**
 * 关于静态代码块,构造代码块,很重要的注意事项:
 *      在静态代码块,构造代码块中可以定义变量,那么定义的是什么变量?
 *      是作用域仅在代码块当中的局部变量
 *      千万不要认为定义的是成员变量/静态成员变量
 *
 *      2.静态代码块可以近似看成一个，在类加载时期自动调用的静态成员方法
 *        构造代码块可以近似看成一个,在new对象过程中自动调用的成员方法
 *
 *      3.静态代码块也经常被用来测试类加载的顺序（重要）
 *          一个类的静态代码块如果没有被执行，说明它没有被完全类加载。
 *
 * @since 09:57
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo2 {
    static {
        System.out.println("Demo2");
    }
    public static void main(String[] args) {
        // new A();
        System.out.println("hello");
    }
}

class A {
    int num;

    {
        // 不是成员变量
        int num2;
        System.out.println("你好,谢谢你,你真好~");
    }

    static {
        // 不是静态成员变量
        int num3;
        System.out.println("hello world!");
    }
}